home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / compuserve-file-archive / 23 Geos Applications / LASER2.BIN / LASERMATRIX INFO (.txt) < prev    next >
GEOS ConVerT  |  2019-04-13  |  41KB  |  483 lines

  1. Lasermatrix Info
  2. SEQ formatted GEOS file V1.0
  3. EPSON FX-80 (GC)
  4. QWIK TOP
  5. BLASTER'S CONVERTER V2.5
  6. Write Image V2.0
  7. geoWrite    V2.0
  8. 0Instructions & information for LaserMatrix V2.0
  9.           -Bill Prendergast
  10. LaserMatrix V2.0
  11. @GEOS Interpolating Printer Driver
  12. Developed by Bill Prendergast
  13. @What is 
  14. LaserMatrix
  15. LaserMatrix is a GEOS printer driver that graphically enhances any GEOS information passed through it.  It works with any GEOS app- lication that uses the printer and handles text and graphics.
  16. @Background
  17. I first thought of LaserMatrix when watching what the MacIntosh Laser Printer did to Mac graphics... somehow it 'smoothed' the screen image and made a much better printout than was displayed on the screen.  When GeoWrite 2.0 came out with a print selection of "Draft/High/NLQ", I assumed that Berkeley SoftWorks had taken this into account by offering various print enhancement qualities.  No such luck!  I then thought that maybe the newer printer drivers included on the disk did just that; again, no luck.  When I found out about Berkeley/Compute Gazette's GEOS programming contest, I thought I should take a crack at it, and at the same time get my long-awaited enhanced printout.
  18. The only problem with this idea was that I was due to leave the country for a few months on business and had only a few weeks to write it.  As a further burden, I realized just before leaving that if the folks at Berkeley didn't have a Star SG-10 printer, they would have a tough time getting my driver to work!  This prompted a VERY quick write of the LaserMatrix Editor to allow them to configure the program to their printer.  Both programs were mailed into the contest on my way to the airport!  (Seriously!)
  19. @Apologies
  20. Well, I really didn't expect to see LaserMatrix distributed publicly, nor did I expect the great response that it's gotten.  I wish now that I had spent a little more time on documentation and testing.  My big "sorry" goes out to the folks with printer widths other than 80 card widths.  I didn't test this and let a very stupid bug into the program; V2.0 fixes this.  A smaller "sorry" goes to people with printers other than the Star SG-10 who aren't sure what printer codes to use.  The only other printer I had access to when testing was another SG-10, and I wasn't a printer escape code expert, so I couldn't have provided this information.  Besides, LaserMatrix was primarily a contest entry!
  21. @Printer Driver Technical Stuff-
  22. NOTE:  Your printer's technical manual contains the infor- mation required by the LaserMatrix Editor to configure the driver to your printer.  You should be reasonably familiar with how printer escape codes work and the capabilities of your printer in order to use the LaserMatrix Editor.
  23. GEOS works with a printable image that is 
  24. @cards
  25.  wide, where a 
  26. @card
  27.  is simply an 8-pixel by 8-pixel screen area.  This image, on the screen, has a density close to 
  28.  pixels (dots) per inch.  
  29. @Note that the density and the width are two different things.
  30.   Different printers can have various widths and various densities, and most printers support more than one density.  This is the opportunity that LaserMatrix takes advantage of...  The SG-10, for example, has a high density printing mode capable of 
  31.  dots per inch!  For comparison, a MacIntosh laser printer has a density of 
  32.  dots per inch.
  33. To make sure that the printout has the same proportions as the image on the screen, we should also adhere to the 
  34. @80 DPI
  35.  (dots per inch) GEOS screen density for printing. 
  36. To make sure that the printout has the same proportions as the image on the screen, we should also adhere to the 
  37. @80 DPI
  38.  (dots per inch) GEOS screen density for printing.  For example, simply printing the image using 240 DPI would make the image 2/3 smaller!
  39. Since we can't squeeze the screen image into tighter densities to get better results, we need to fill in those extra dots with something.  GEOS doesn't have any more information to give us, just 80 dots every inch.  Or maybe there 
  40.  more...
  41. LaserMatrix uses a technique called 
  42. @interpolation
  43.  to determine what data SHOULD probably have been there if the GEOS image had been more dense.  For example, if the GEOS image is a horizontal line one inch wide, it sends the printer driver 80 dots in a row.  If we wanted to print this image in a higher density such as 160 DPI, we would need 
  44. @80 more dots
  45.  for that one inch of printout.  GEOS can't give them to us, but we can assume that these 'other' 80 dots should be in a straight line also.  Thus, LaserMatrix 'fills in' the 'missing' data as follows:
  46. When printed, the output is a much better looking horizontal line:
  47. Although this simple method is fine for horizontal lines, GEOS text and graphics rarely consist of just horizontal lines.  LaserMatrix has other routines to handle graphic interpolation containing other types of lines and shapes.  Additionally, since LaserMatrix works on GRAPHIC images, it doesn't matter whether you're printing GeoPaint images or GeoWrite text; it's all handled the same.
  48. Now, to return to printer density selection.  LaserMatrix can output a 
  49. @multiple
  50.  of the number of dots sent out by GEOS.  For simplicity (and because of the standard printer densities available), LaserMatrix outputs either 
  51.  times the number of dots GEOS sends out.  Thus, the 
  52. @HIGH DENSITY SELECTION
  53.  is chosen as the highest density that is closest to a multiple of the normal (GEOS 80 DPI) density.  The Star SG-10 has the following density options:  
  54. @ 120
  55. @ 240
  56.  DPI.  
  57.  DPI is chosen since it is an even multiple of 
  58.  times 
  59.  DPI.
  60. @What if your printer doesn't have an even multiple of 80 DPI density?  
  61. If so, you're in the same situation as not having an 80 DPI mode with a normal printer driver- your printed page will not have the same height & width ratio that your screen image does.  Printing at 60 DPI will make the printout wider in aspect than the displayed image.  Printing at 90 DPI will appear to shrink the printout width.  The goal is to select a high density that is as close as possible to a multiple of 80 DPI.  For example, if your printer has 72 & 144 DPI modes, choose 144 DPI, and a MULTIPLE of 2.  This will give the same size results as normal printing in 72 DPI mode- a slightly wider printout.  Come as close to 
  62.  DPI as possible.
  63. @IMPORTANT NOTE:
  64. Some printers such as the NX-1000 and LX-80 have high density (240 DPI) modes available, but only print 
  65. @every other dot
  66.  sent to the printer (horizontally).  This is because the printhead pins cannot retract and refire repeatedly more than 120 times while the head moves over 1 inch of paper at that speed.  The density remains at 240 DPI, but half of the dots are actually printed.
  67. This 
  68. @may not
  69.  affect the LaserMatrix printout.  LaserMatrix sends out enough dots in two passes that this 'dot skipping' may not be noticed at all.  This depends also upon the content of the printout- densely packed graphic areas could appear lighter or thinned out.
  70. Two choices are available;  
  71.  a)    Use the 
  72. @240 DPI
  73.  mode which will skip dots as mentioned, if the output is acceptable, - or -
  74.  b)    Use the normal speed 
  75. @120 DPI
  76.  mode which does NOT skip dots, but will make the printout appear slightly wider than the screen image, if this is acceptable. (Some printers also
  77.     have a fast 120 DPI mode, but this also skips every other
  78.     dot)
  79. Again, depending on the content of the image, it may be worthwhile to set up BOTH methods as seperate drivers and select the one that is best for a given printout.  Read your printer's manual closely to determine if your high density graphics printing mode utilizes this 'dot skipping' approach.
  80. @Now you must determine your printer's WIDTH.
  81.   GEOS will output a 
  82. @maximum
  83.  dots horizontally.  LaserMatrix then doubles or triples this number to 
  84. @1280
  85. @1920
  86.  dots 
  87. @maximum
  88. .  The printer's width limitation will be either:
  89.     a)  The printer's physical carriage width and density, -or-
  90.     b)  The maximum number of dots it can print across 
  91.         the page
  92. First, check the bit-map graphics capabilities of the printer.  GEOS needs to know the printing width in 8-dot 'cards'.  GEOS app- lications will send out the data in multiples of 8 dots, a width of 
  93.  cards allowing the full width of 
  94.  (80 x 8) dots that GEOS is capable of.
  95. Some printers have a limitation on the number of dots that can be printed on a single line in high density modes.  If your printer has no limitation or none can be found in the manual, use the maximum physical printing width of the carriage (usually 8 inches) multiplied by the high density selection in dots/inch.  The maximum number of dots per line is the 
  96. @smaller
  97.  of these two numbers.
  98. To compute your printer's width, do the following:
  99.   a)    Find the number of dots the printer can print on a
  100.     line at the selected high density (described above),
  101.   b)    Divide by the density MULTIPLE (2 or 3) being used,
  102.   c)    Divide by 8 and round down to the nearest whole number
  103. If this number is 
  104. @greater than or equal to 80
  105. , then the printer width is 
  106. , otherwise this computed number is the maximum width and you'll have to endure a slightly smaller page.  Most GEOS applications have generous right and left margins, so a smaller page lets GEOS know that it should reduce the margins and most documents will still print OK.
  107. For example:
  108. Printer XYZ can print 
  109. @1200
  110.  bit-map graphics dots across an 8-inch page.  The high density mode is 
  111.  dots per in
  112. For example:
  113. Printer XYZ can print 
  114. @1200
  115.  bit-map graphics dots across an 8-inch page.  The high density mode is 
  116.  dots per inch, a multiple of 
  117.  times 80 DPI.  (
  118.  in.) x (
  119.  dots/in.) = 
  120. @1280
  121. , so the dot limitation is the smaller number, 
  122. @1200
  123. @1200
  124.  divided by 
  125.  divided by 
  126. .  Thus, printer XYZ has a GEOS width of 
  127.  cards.
  128. Printer ABC can print 
  129. @1600
  130.  dots across an 8-inch page.  The high density mode is 
  131.  DPI, using a multiple of 
  132.  (x 72 DPI).    (
  133.  in.) x (
  134.  dots/in.) = 
  135. @1728
  136. , so 
  137. @1600
  138.  is the limitation.  1600 divided by 
  139.  is 533.333.  Divided then by 8 gives 66.666, which, rounded down, is a width of 66 cards.  A better choice here is to use a high density of 
  140.  DPI (if available), with a multiple of 
  141. @144)
  142. @1152
  143.  dots, which becomes the limitation.  1152/
  144.  = 576, and 576/8 = 
  145.  cards, which is closer to the maximum width of 80 cards.
  146. Printer PDQ handles thermal paper no greater than 
  147.  inches wide.  No dot limitation is listed.  The high density mode is 
  148.  DPI, a multiple of 
  149.  in.) x (
  150.  DPI) = 
  151.  dots.  720/
  152.  = 360, and 360/8 = 
  153.  cards.
  154. The SG-10 has no limit listed.  Using 
  155.  DPI, a multiple of 
  156. , the dot limit is:  (
  157.  in.) x (
  158.  DPI) = 
  159. @1920
  160. , 1920/
  161.  = 640, 640/8 = 
  162.  cards.
  163. If the output does not appear as expected, check your manual again closely to ensure that there is not a limit on the number of dots printed.  Also, if your printer does not handle at least an 8-1/2 inch sheet or only low or "non-standard" densities are available, check the graphics printing information closely for the specific details mentioned above.
  164. @To compute the page HEIGHT
  165. , you need to know the actual size of the paper you will use.  A non-perforated roll can be any length (within some limits, one would guess), but single-sheet and fanfold perforated paper should be measured.  Normal sheets are 11 inches long.  GeoPublish, for example, uses a 10.5 inch high page image.  If your printer has automatic top and bottom margins, or if you intend to set printer vertical margins (not in the GEOS application, but in the printer or driver itself) you should subtract these from the initial page length.  For example, if using an 11 inch page, programming automatic 1/2 inch top & bottom margins in the printer results in a 10 inch high page, as GEOS sees it.  Also take into account where on the paper you start the printout- some people line up the printhead with the paper edge prior to printing, others start about 1/2 inch down the page.
  166. Printer page height is represented in 
  167. @8-pixel cards
  168. , just as in width.  The number of dots per inch vertically, however, is 
  169. @fixed
  170.  by the pin spacing in the dot matrix print-head.  LaserMatrix sends out a fixed multiple of 
  171.  times this vertical density.
  172. To compute page height (in cards), do the following:
  173.   a)    Determine the height of the physical page being used
  174.   b)    Subtract any top and bottom margins to be used
  175.   c)    Multiply by the standard vertical density in DPI
  176.   d)    Divide by 8 and round down to the nearest whole number
  177. For example, the STAR SG-10 has a normal vertical density of 72 DPI, with a printhead height of 8/72 inches.
  178. @NOTE:  This bit of information is CRITICAL and may not be explicit in your manual.  READ the details, fine print, and coding examples to obtain this number!
  179. So, for a 10.5-inch page (as GeoPublish uses):
  180.     10.5 in. x 72 DPI / 8 = 94.5, or a height of 
  181.  cards
  182. Note that if you
  183. So, for a 10.5-inch page (as GeoPublish uses):
  184.     10.5 in. x 72 DPI / 8 = 94.5, or a height of 
  185.  cards
  186. Note that if you opt for large margins or if other factors affect the page height, your page may be too short for a given application.  GeoWrite will continue printing text on the next page, but GeoPublish will stop when it reaches the end of the page as you've defined it.
  187. We now have the primary information that LaserMatrix needs;  the page 
  188. @height
  189. @width
  190. , and printing 
  191. @density
  192. @ASCII PRINTING
  193. Besides printing GEOS fonts and graphics, the LaserMatrix printer driver also supports ASCII draft and Near-Letter-Quality (NLQ) printing modes.  These modes ignore GEOS fonts and bit-mapped images and print 
  194. @only the text
  195.  on a page in your printer's internal fonts.  These modes are faster since the LaserMatrix graphics interpolation does not need to occur.  Draft mode is good to get a quick printout for proofreading or editing and will be printed in your printer's normal dot-matrix font.  GeoWrite (when using the 'Com- modore' font) and GeoCalc also support NLQ printing which is similar, but uses the printer's better NLQ font (on printers with this option).
  196. @ESCAPE CODES (aargh!)
  197. These are not as difficult as rumor would have it.  An escape code is simply a byte (character) sent to the printer that is an 
  198. @instruction
  199. , not a letter or number to actually be printed.  They are called 'escape' codes because they are traditionally a series of codes preceded by an ASCII '
  200. @ESCAPE
  201. ' character (#27).  The escape character tells the printer that the next few characters coming in should be grouped together to form a printer instruction instead of being printed.
  202. Each printer manufacturer has an idea of the 'best' way to communicate with a printer.  GEOS only sends text & graphics out in ONE manner; it is the printer driver's responsibility to see that the GEOS application's request is translated to the correct printer instructions to get the job done - for that particular printer.  This is why there are so MANY different GEOS printer drivers.  Before printing, for example, a GEOS application tells the driver to reset the printer.  The driver simply responds by sending out a pre-defined set of escape codes to the printer, instructing it to reset, and then reports to GEOS that the job was done.
  203. The printer's manual contains a description of each escape code it can understand, along with a description of the format of the code and any additional information that needs to be sent.
  204. @LaserMatrix Editor
  205. This GEOS application is used to tailor a LaserMatrix driver to your printer.  It reads 
  206.  existing LaserMatrix (V2.0) driver from the disk and makes a copy in memory (leaving the original driver untouched).  The program will then ask for the escape codes required to get 
  207. @your
  208.  printer to execute the various LaserMatrix routines.  When finished, the new driver is written to the disk, ready to use.
  209. Each edit page displayed by the LaserMatrix Editor has up to 3 icons at the bottom:  
  210. @PREVIOUS
  211. @NEXT
  212. , and 
  213. @QUIT
  214. .  'PREVIOUS' backs the editor up to the previous page to allow you to change a parameter.  You may back up from the last page all the way to the first, if desired.  'NEXT' is the opposite of PREVIOUS, except that you may not move forward past a page that 
  215. @requires
  216.  printer information until you have entered the required data.  'QUIT' will exit the editor at any time, without saving the new LaserMatrix driver.
  217. The following paragraphs are explanations of the data required on each editor page.
  218. @A)  New LaserMatrix Driver Name
  219. The new driver to be created must
  220. The following paragraphs are explanations of the data required on each editor page.
  221. @A)  New LaserMatrix Driver Name
  222. The new driver to be created must have a unique name, different from the driver to be read in as a template.
  223. @B)  Page Width
  224. The printer width in cards, as explained in the paragraphs above, must be entered here.  Two default selections of 
  225.  and 
  226.  cards are available.
  227. @C)  Page Height
  228. The page height in cards, computed above, is entered here.  A default selection of 
  229.  cards is also available.
  230. @D)  Mode Selection
  231. If ASCII Draft and/or NLQ printing capabilities are desired for the new driver, the 
  232. @Graphics/ASCII
  233.  icon should be selected.  Other- wise, select the 
  234. @Graphics Only
  235.  icon.  ASCII printing parameters will be needed only if the ASCII printing functions are selected here.
  236. @E)  Density Multiple
  237. The printing density multiple (
  238. ), computed above, is entered here.  Select 
  239. @Double
  240.  for 2 or 
  241. @Triple
  242.  for 3.
  243. @F)  Printer Initialization Escape Code Sequence
  244. This is the code sequence needed to reset your printer to a default 'just powered up' condition.  The following options 
  245. @must
  246.  be initialized by the Reset codes:
  247.     - Clear any non-needed modes (margins, italics, tabs, etc.)
  248.     - Set the default line-feed amount (explained below)
  249. Any of the following options, if desired and available on your printer, can also be initialized by the Reset codes:
  250.     - New margins (horizontal and vertical)
  251.     - New page length (for skipping perforations)
  252.     - Any codes needed to initialize your printer's interface
  253. Most printer interfaces should be set to a 
  254. @transparent
  255.  mode so that printer escape codes sent by the LaserMatrix driver are not trapped and interpreted by the interface.  Check your interface's manual for more information.  If your printer must first be set to emulate another printer, the codes to do this should be the FIRST codes in the reset sequence.
  256. @default line-feed amount
  257.  mentioned above is the amount of paper feed necessary to place the 
  258.  printhead dot directly under the 
  259. @last
  260.  printed dot on the previous line:
  261. With the default line-feed set equal to the printhead height, 
  262. @continu
  263. With the default line-feed set equal to the printhead height, 
  264. @continuous
  265.  vertical scans of the GEOS graphics image are formed.  
  266. Another necessary parameter is the 
  267. @SMALLEST
  268.  line-feed amount possible on your printer.  This is used to shift the paper up enough to allow the printhead to print dots between previously printed dots.  As an example, these values for the STAR SG-10 (in STAR mode) are:
  269.     Line-feed for continuous print:    
  270. @8/72
  271. "  (the printhead height)
  272.     Smallest line-feed possible:    
  273. @1/144
  274. This smallest line-feed is printed after the first printing pass of the two-pass process.  Because of this, the amount of paper that must subsequently be fed to get to the next output line is the previously computed default line-feed 
  275. @MINUS
  276.  the smallest line-feed already printed.  The 
  277.  'default' line-feed amount for the Star SG-10 now becomes:
  278. 8/72" - 1/144" = 
  279. @15/144
  280. (8/72" = 16/144")
  281. The SG-10 escape code sequence for telling the printer the new default line-feed is defined in 
  282. @multiples
  283.  of the smallest amount (in 1/144 inch increments) as is true for most printers-  the sequence sets the amount to 
  284. @n/144
  285.  inches, where you specify '
  286. '.  Using the information above, check your manual for your printer's line-feed capabilities.  Some printers offer a 1/216 inch line-feed which is also acceptable.  Changing the default line-feed is 
  287. @REQUIRED
  288.  to get proper LaserMatrix output.
  289. The LaserMatrix Editor will prompt you for the escape code sequence to initialize your printer.  These codes should be entered in 
  290. @DECIMAL
  291.  (double-check the number format given in your printer manual !) and must be separated by 
  292. @commas
  293. .  Remember, the decimal code for the ESCAPE character is 27.  Also, some manuals specify ASCII characters as escape code sequence parameters- use the 
  294. @decimal equivalent
  295.  for these characters.  Using the SG-10 again as an example:
  296.     Printer Reset:    
  297. @27, 64
  298.     (ESCAPE, "@")
  299.     Set default line-feed to 15/144":    
  300. @27, 51, 15
  301.     (ESCAPE, "3", 15)
  302. Some important RULES governing escape codes:
  303. @Always
  304.  use 
  305. @decimal
  306.  numbers
  307.     2)    If an 
  308. @ASCII character
  309.  is to be sent, enter its
  310. @decimal equivalent
  311.  ("@" = 64, "A" = 65, etc.)
  312.     3)    If a 
  313. @number
  314.  is given, double-check to see if it
  315.         is an 
  316. @ASCII character
  317.  or a 
  318. @decimal number
  319.         character "0" is decimal 
  320. , number 0 is 
  321. @ESCAPE,
  322. " is 
  323. @NOT 
  324. the same as 
  325. @ESCAPE,3
  326.     4)    The 
  327. @ESCAPE
  328.  character is decimal 
  329.     5)    Separate entries with 
  330. @commas
  331.     6)    Double-check the wording in the manual- 
  332. @SETTING
  333.  a line-feed is 
  334.  the same command
  335.         as 
  336. @SENDING
  337.  a line-feed!
  338.     7)    Press 
  339. @RETURN
  340.  after entering a sequence.  Do not
  341.         use the '
  342. @NEXT
  343. ' icon until after pressing RETURN
  344.         when initially entering an escape code sequence.
  345. The SG-10 initialization sequence is then entered as:
  346. @27, 64, 27, 51, 15  
  347. [return]
  348. G)  Printer Graphics Output Escape Code Sequence
  349. This is probably the most confusing part of the LaserMatrix Editor, but is the escape sequence that does the most "work".
  350. Using the density information computed previously, we must calculate the number of actual dots across the page that the printer should expect to see.  This is done using the following equation:
  351. # dots = Printer width in cards x 8 x Density MULTIPLE (2 or 3)
  352. For example, printer XYZ has a 
  353. -card width, and a selected multiple of 
  354.  (160 DPI = 
  355.  DPI).  The number of dots is:  
  356. @1,200
  357.  dots across.
  358. The Star SG-10 has an 
  359. -card width, and uses 240 DPI, a multiple of 
  360. .  This works out to:  
  361. @ 1,920
  362.  dots across.
  363. As a further headache, this number must be broken down into a high-byte/low-byte sequence for the STAR and for most, if not all, other printers.  This simply means sending two numbers to the printer, 
  364.  and 
  365. , computed using:
  366. @ dots 
  367. @ 256 
  368. @ N2 
  369. where:    
  370.  = Whole (integer) part of #
  371. @dots/256
  372. ,    (high byte)
  373. and:    
  374. @dots
  375. )        (low byte)
  376. For the SG-10, using 
  377. @1920
  378.  dots across:
  379.  = INT( 
  380. @1920
  381. /256 ) = INT( 7.5 ) = 
  382. @1920
  383.  - (256 x 
  384. @1920
  385.  - 1792 = 
  386. Thus, the 
  387. @low-byte
  388. , and the 
  389. @high-byte
  390. .  The printer can take these two numbers and "re-construct" the original number, 
  391. @1920
  392. .  The SG-10 expects to have the low-byte sent first, although some printers may be opposite.  The remainder of this sequence is the code string to set the printer to the selected density.  For the SG-10, the sequence is:  ESCAPE, "g", followed by a number representing the density; in this case 
  393.  DPI, which is density selection number 3 in the SG-10's list of available densities.  This string is then followed by the dot count in low-byte/high-byte format.  Put together:
  394. ESCAPE, "g", 3, 128, 7   -or-   
  395. @27, 103, 3, 128, 7
  396. Your manual may show that your printer uses a slightly different format.  The only requirement that LaserMatrix has is that this escape code sequence must do whatever is necessary to enable the printer to receive the graphics dots 
  397. @immediately after
  398.  sending out the escape codes.  Printers that require codes or printer instructions within dot streams will not be compatible with LaserMatrix.  Most (if not all) Epson-compatible or Epson-similar printers support this type of graphics printing, however, so there shouldn't be any problems.
  399. @H)  Send Half-dot Line-feed Escape Code Sequence
  400. The "smallest possible" line-feed found earlier is sent to the printer between print passes.  This escape code sequence must 
  401. @SEND
  402.  a single, small line-feed command to the printer.  Note that this is different than 
  403. @SETTING
  404.  the default line-feed.  For the STAR SG-10, this command is of the form:  
  405. @ESCAPE, 
  406. , where 
  407.  is the number of 1/144" line-feeds to send; in this case, 
  408. .  This escape sequence for the SG-10 is then:
  409. @27, 74, 1
  410. This covers 
  411. This covers everything necessary for graphics printing for GeoWrite, GeoPaint, GeoPublish, etc.  ASCII printing, which uses your printer's ASCII draft and/or Near-Letter-Quality (NLQ) modes is optional, at 80 characters per line and 66 lines per page.  The following paragraphs cover ASCII printing.  You may omit these parameters from the LaserMatrix driver if ASCII printing is not desired and was not selected on the Graphics/ASCII capability edit page.
  412. @I)  Initialize ASCII Mode Escape Code Sequence
  413. This escape sequence is similar to the printer initialization sequence mentioned above, except that the default line-feed should 
  414.  be set for continuous (touching) print scans, but should instead include some spacing between lines.  The SG-10 default is 1/6 inch spacing.
  415. I have found a small quirk, however-  since GeoWrite sends out 66 lines per page in ASCII mode, 1/6 inch line spacing results in exactly 11 inches.  Thus, if you started at the very top of one sheet, you will be at the top of the next sheet 66 lines later.  GeoWrite will then 
  416. send a form-feed at the end of each page's text to advance to the top of the next sheet.  So, after a full page of text the printer is at the top of a new sheet, but you 
  417. @then
  418.  get a form-feed which SKIPS one blank page!
  419. To correct this, I suggest setting a default margin that is 
  420. @SLIGHTLY
  421.  smaller than 1/6 inch.  If you are already using a spacing smaller than this, there will be no problem.  For the SG-10, I use 1/6 inch minus the smallest amount (1/144 inch), resulting in a 23/144" line-feed.  The ASCII printer initialization escape sequence is then:
  422. ESCAPE, "@" (reset), ESCAPE, "3", 23  -or-
  423. @27, 64, 27, 51, 23
  424. Any other ASCII printing options can be added:
  425.     - ASCII internal font selections (Italics, etc.)
  426.     - Character spacing (Elite, Pica, condensed, etc.)
  427.     - Effects such as expanded characters, boldface, etc.
  428. To use these effects, simply append the escape code sequence to the initialization codes above.  Note that the selected options will remain in effect throughout the ASCII printout.
  429. J)  Near-Letter-Quality Printing
  430. The LaserMatrix Editor displays the NLQ option with 
  431.  icons.  If an NLQ mode is available for your printer and is desired, select the 
  432.  icon and enter the NLQ escape code sequence.  This sequence simply instructs the printer to switch to output its NLQ font characters.  As above, any additional options can be added by entering the escape code sequence desired.  The SG-10 NLQ option is enabled using:
  433. ESCAPE, "B", 4  -or-
  434. @27, 66, 4
  435. @K)  Saving the New Driver
  436. After making the selections, the '
  437. @PREVIOUS
  438. ' icon can be used to back up and edit or change any entries.  Selecting '
  439. @NEXT
  440. ' here will place your entries into the LaserMatrix program template in memory, save the new driver to the disk, and exit.  '
  441. @QUIT
  442. ' will exit the editor without saving the driver.
  443. Remember to use the GEOS DeskTop '
  444. @Select
  445. @Printer
  446. ' option to select the newly created driver as the one to use.
  447. With the above information, any printer capable of the indicated functions can be coupled with LaserMatrix to produce extremely high-quality GEOS output.
  448. @LaserMatrix 1, 2, and 3...
  449. LaserMatrix 1.0 is the original contest entry, which had a few bugs.  LaserMatrix 2.0 is actual
  450. @LaserMatrix 1, 2, and 3...
  451. LaserMatrix 1.0 is the original contest entry, which had a few bugs.  LaserMatrix 2.0 is actually LaserMatrix 1.1, an updated version with the bugs corrected.  Strangely, one of the bugs was that the version number needs to be 2.0 or above in order for GeoWrite to access the ASCII printing functions... hence, LaserMatrix 2.0 instead of 1.1.
  452. LaserMatrix 3 is currently in development, but should contain the results of many things learned from LaserMatrix 1 & 2.  Although I doubt that it will be faster, it appears that the image can be even 
  453. further
  454.  enhanced... still moving towards laser-quality!
  455. I hope to also include routines that handle printers with escape sequences different from the Epson-compatibles, 7-bit printers, a real-time printing option selection, and possibly image scaling and color-printer capability.
  456. @ShareWare, Copyrights, etc.
  457. PLEASE don't think that this DOESN'T take a LOT of my time.  
  458. @IT DOES
  459. .  I spent time researching, developing the printing methods, writing code, and debugging it.  Writing this documentation so that more people can use LaserMatrix took quite a few hours.  Writing LaserMatrix 1.0 and the LaserMatrix Editor took many more.  And the debugging to create LaserMatrix 2.0 took even more.
  460. I've gotten a LOT of positive comments on this software.  People are using LaserMatrix on newsletters, club flyers, mailing labels, resumes, and 'Commodore' magazine uses it to publish its monthly GEOS column.  If it is worth USING, but not enough to send me a few bucks to pay for it, PLEASE write and tell me why.  The published ShareWare fee for the LaserMatrix package (driver and editor) is only $5.00.  If you're not going to do weekly newsletters, but maybe use it only now and then, then even 2 or 3 dollars would be greatly appreciated.
  461. I would enjoy writing software such as this and placing it in the public domain if I got even a small reward for my efforts.  From the feedback I've gotten, I estimate that well over 1200 copies of LaserMatrix have been distributed.  However, I have received LESS THAN $40 in ShareWare donations.  Because of this, I (and many other programmers) may be forced into commercial distribution.  This additional cost is passed on to YOU, possibly making LaserMatrix 3 cost $15-$25, or even to not be released at all.
  462. If I can say it one more time... 
  463. @PLEASE
  464.  understand that I DID spend a lot of my personal time on this.  If you use my product and are satisfied with the quality of the LaserMatrix output, then 
  465. @PLEASE
  466.  send me a note telling me that you like it and 
  467. @PLEASE
  468.  include $5, or whatever you truly believe that this software is worth to you.  I always hear people say that "they wouldn't copy software if prices were reasonable".  Most ShareWare authors charge $3-$10 for really good programs- you don't get much more "reasonable" than that!
  469. For those people who have supported me and the ShareWare concept... 
  470. HTHANK YOU !!
  471. I have enjoyed hearing of the uses that you have found for LaserMatrix.  Feel free to write me with any questions, ideas, hints, or suggestions for future improvements.
  472. @            Bill Prendergast
  473.             RD 1, Box 11A
  474.             Conklin, NY  13748
  475.             April 20, 1989
  476.             (WildBill
  477. @ on Q-Link)
  478. p.f.9;1
  479. )IIEJJ@
  480. p)OIEJz@
  481. )HIEJB@
  482. )'N9)9
  483.